# -*- coding: iso-8859-1 -*-
# file Manager.py
# author Rocco Martino
#
############################################################################
#    Copyright (C) 2015 by Rocco Martino                                   #
#    martinorocco@gmail.com                                                #
#                                                                          #
#    This program is free software; you can redistribute it and/or modify  #
#    it under the terms of the GNU Lesser General Public License as        #
#    published by the Free Software Foundation; either version 2.1 of the  #
#    License, or (at your option) any later version.                       #
#                                                                          #
#    This program is distributed in the hope that it will be useful,       #
#    but WITHOUT ANY WARRANTY; without even the implied warranty of        #
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         #
#    GNU Lesser General Public License for more details.                   #
#                                                                          #
#    You should have received a copy of the GNU Lesser General Public      #
#    License along with this program; if not, write to the                 #
#    Free Software Foundation, Inc.,                                       #
#    59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             #
############################################################################

############################################################################
from . import Node, Space
############################################################################




############################################################################
# ........................................................................ #
# ........................................................................ #
############################################################################




############################################################################
# ........................................................................ #
class Manager(Node.Node):





############################################################################
############################################################################









############################################################################
    def __init__(self, obj, data):
        super(Manager, self).__init__(obj, data)

        if self.Data.UseThreadedManager:
            self.ClassName = "osgODE::ThreadedManager"
        else:
            self.ClassName = "osgODE::Manager"

        self.CheckUniqueID = False
        self.CollectProps = False

        self.Name = "Manager@%s" %self.Data.CurrentScene.name
############################################################################




############################################################################
    def writeData(self, writer):






        if self.Data.UseThreadedManager:
            self.addUpdateCallback("osgODE::ThreadedManagerUpdateCallback")

        else:
            self.addUpdateCallback( "osgODE::ManagerUpdateCallback", ["MaxStepSize 0.1"] )



        #if self.Data.ExportGame:
        if True:
            self.addEventCallback("osgODE::ManagerEventHandler")






        super(Manager, self).writeData(writer)



        step_size = 1.0 / self.Data.CurrentScene.game_settings.fps

        writer.writeLine("StepSize %f" %(step_size))

        writer.writeLine("AcceptVisitors TRUE")





        world = Space.Space(self.Data.CurrentScene.world, self.Data)

        writer.moveIn("World TRUE")

        world.writeObject(writer)

        writer.moveOut("World TRUE")


############################################################################




# ........................................................................ #
############################################################################
